﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for Agent
/// </summary>
/// 

namespace Bestlife.ERP.BusinessRules
{
    public class Agent:System.Web.UI.Page
    {
        Double direect_commision;
        String user_status;
        String Parent_Ststus;
        Double indireect_commision;
        Double Totalbv;
        Double TotalCommitions;
        Double bv;
        Double Parentinderect;
        String Current_user;

        public Agent()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public void agent(String id, Double product_bv, Double product_pv, Double ts, String user_status)
        {
            Bestlife.ERP.DataAccess.D_bonus bns = new DataAccess.D_bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns1 = new Entities.E_Bonus();//(Add by chathuranga)
            Bestlife.ERP.Entities.E_Bonus ebns2 = new Entities.E_Bonus();//(Add by chathuranga)
            Totalbv = product_bv;
            bv = product_bv;
            try
            {
                ebns1 = bns.Getbonus(id);//get user(child) totalcommition(Edit by chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )
                double T_commitioninDB = double.Parse(ebns1.T_commision.ToString());

                DataAccess.parents p1 = new DataAccess.parents();

                string parent = p1.parent(id);// add parent id (Edit by chathuranga 22-06-2012)
                ebns2 = bns.Getbonus(parent);// add parent id (Edit by chathuranga 22-06-2012)
                double parent_tot_commition = double.Parse(ebns2.T_commision.ToString());

                Parent_Ststus = (Parent_Ststus = p1.ParentDetails(id));// get parent status


                //total sales  direct commition for  Agent
                direect_commision = ((product_bv * 20.0) / 100);


                
                if (Parent_Ststus != null)
                {


                    int parent_St = int.Parse(Parent_Ststus);
                    int child_St = int.Parse(user_status);

                   
                    Parentinderect = indireect_commision + parent_tot_commition;
                    TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                    if (child_St>parent_St) 
                    {
                        Current_user = Session["user"].ToString();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();
                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth add by chathuranga 04-08-2012

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);


                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("5"))    //  Ruby and Ruby
                    {
                        
                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        Current_user = Session["user"].ToString();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();
                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        p1.UpdateParenttpvmonth(parent, product_bv, product_pv, user_status);//update parent tppv month and tbvmonth add by chathuranga 04-08-2012

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }


                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);


                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("6"))   //  Agent and Ruby
                    {
                        //total sales  direct commition for Ruby 
                        indireect_commision = ((Totalbv * 4.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("7"))   //  Agent and Diamand
                    {
                        //total sales  direct commition for Ruby 
                        indireect_commision = ((Totalbv * 8.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("8"))   //  Agent and S.Diamand
                    {
                        //total sales  direct commition for Ruby 
                        indireect_commision = ((Totalbv * 12.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("9"))   //  Agent and S.E.Diamand
                    {
                        //total sales  direct commition for Ruby 
                        indireect_commision = ((Totalbv * 16.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }
                    else if (user_status.Equals("5") && Parent_Ststus.Equals("10"))   //  Agent and C.Diamand
                    {
                        //total sales  direct commition for Ruby 
                        indireect_commision = ((Totalbv * 20.0) / 100);// inderirect commision 

                        Parentinderect = indireect_commision + parent_tot_commition;
                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user

                        // TotalCommitions = direect_commision + indireect_commision;//(Edit By chathuranga - Saturday, June 16, 2012 at 2:08:04 PM )

                        // update parent bv and cpv
                        DataAccess.parents pr = new DataAccess.parents();
                        Bestlife.ERP.DataAccess.D_child ch = new DataAccess.D_child();//add child class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        Boolean updated = pr.UpdateParent(id, bv, Parentinderect, product_pv, user_status, indireect_commision);//update parent TotalCommition --> inderect_commition class (by chathuranga - Saturday, June 16, 2012 at 2:32:31 PM )
                        // Get Current user Id
                        Current_user = Session["user"].ToString();

                        DataAccess.users crnt = new DataAccess.users();
                        String CrntID = crnt.GetUserId(Current_user);

                        if ((id == CrntID))
                        {

                            Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 

                        }

                        // Update user commisions + update parent cpv+ user pv
                        // Sales.Totalsales(user_id,TotalCommisions);  

                        DataAccess.users usr = new DataAccess.users();
                        usr.users_level(parent, product_bv, product_pv, ts);



                    }

                }
                else if (user_status.Equals("5") && (id.Equals("1")))
                {

                    Current_user = Session["user"].ToString();
                    DataAccess.users crnt = new DataAccess.users();
                    String CrntID = crnt.GetUserId(Current_user);
                    if ((id == CrntID))
                    {

                        TotalCommitions = direect_commision + T_commitioninDB;//total commition to child user
                        DataAccess.D_child ch = new DataAccess.D_child();
                        Boolean upchild = ch.Updatechild(id, TotalCommitions, product_bv, product_pv, direect_commision);// Add Update bonus 
                    }

                }
            }

            catch (Exception err)
            {

                Response.Redirect("404.aspx?Massage=" + err.Message.ToString());
            }
        }
    }
}


